/**
 * 1 输入框绑定 binginput 值改变事件 input事件
 *    1 获取到输入框的值
 *    2 合法性判断
 *    3 检验通过 把输入框的值 发送到后台
 *    4 返回的数据打印到页面上
 * 2 防抖(防止抖动) 通过定时器来解决
 *   1 定义全局的定时器id 
 *   1 定义全局的定时器id 
 */
import {request} from '../../request/index.js';
import regeneratorRuntime from '../../lib/runtime/runtime';
Page({
  /**
   * 页面的初始数据
   */
  data: {
    goods: [],
    //控制按钮显示与否
    isFocus: false,
    //输入框的值
    inputValue: ""
  },
  TimeId: -1,
  // 输入框的值改变就会触发的事件
  handleInput(e) {
    //1 获取输入框的值
    let {value} = e.detail
    //2 检测合法性(这是不合法情况下，后续不执行)
    if (!value.trim()) {
      this.setData({
        goods: [],
        isFocus: false
      })
      return
    }
    //当输入框中有值得时候，显示按钮
    this.setData({
      isFocus: true
    })
    //3 准备发送请求获取数据   发送请求之前清除定时器
    clearTimeout(this.TimeId)
    this.TimeId = setTimeout(() => {
      this.qsearch(value)
    },2000)
  },
  // 发送请求获取搜索数据
  async qsearch(query) {
    let res = await request({url:"/goods/qsearch",data: {query}})
    this.setData({
      goods: res
    })
  },
  //点击取消按钮
  handleCancel() {
    let value = 
    this.setData({
      inputValue: "",
      goods: [],
      isFocus: false
    })
  }
})